//package Compare;
//
//import org.junit.Test;
//
//import java.sql.SQLOutput;
//import java.util.Arrays;
//import java.util.Comparator;
//
///**
// * java中的对象，正常情况下只能用 == ！=  来比较
// * 开放中需要比较对象的大小
// *
// *comparable(自然排序) 和 comparator（定制排序）
// *
// * 1.String、包装类、Date实现了comparable接口，重写了compareTo()方法
// * 2.重写compareTo(0bj)的规则
// *   如果当前对象this大于形参对象obj,则返回正整数
// *   如果当前对象this小于形参对象obj,则返回负整数
// *   如果当前对象this等于形参对象obj,则返回零
// *
// * 3.对于自定义类要想排序，要重写compareTo()方法，再重写toString方法
// *
// */
//public class Demo1 {
//    @Test
//    public void test1(){
//        String [] arr = new String[]{"BB","ZZ","CC"};
//        Arrays.sort(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//    @Test
//    public void test2(){
//        Goods[] arr = new Goods[4];
//        arr[0] = new Goods("a",1);
//        arr[1] = new Goods("b",2);
//        arr[2] = new Goods("c",3);
//        arr[3] = new Goods("d",4);
//        Arrays.sort(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//    /**
//     * 没有实现compar接口的类，或comparable的排序不是自己所需要的
//     * 可以定制排序方式，实现comparator接口
//     * 重写compare方法compare(boj1,obj2)比较形参的大小
//     */
//    @Test
//    public void test3(){
//        String [] arr = new String[]{"BB","ZZ","CC"};
//        Arrays.sort(arr, new Comparator(){
//            //字符串从大到小排序a
//            @Override
//            public int compare(String o1, String o2) {
//                if(o1 instanceof String && o2 instanceof String){
//                    String s1 = (String) o1;
//                    String s2 = (String) o2;
//                    return -s1.compareTo(s2);
//                }
//                return 0;
//                throw new RuntimeException("传入的数据类型不一致");
//
//            }
//
//        });
//        System.out.println(Arrays.toString(arr));
//    }
//}
